/**
 * Description
 *
 * Creation Date 21/12/2017
 * @author Candy
 */
import {
	AsyncStorage
} from 'react-native';

export const setStore = async (key, content) => {
	if (!key) return;
	if (typeof content !== 'string') {
		content = JSON.stringify(content);
	}
	await AsyncStorage.setItem(key, content,(error)=>{
		if (error){
			// console.log('存储失败' + error);
		} else {
			// console.log('存储成功',{key, content});
		}
	});
};

export const getStore = async (key) => {
	if (!key) return;
	return await AsyncStorage.getItem(key,(error,result)=>{
		if (error) {
			console.log('获取失败' + error);
		} else if (result === null){
			// console.log('获取值为空')
		} else {
			// console.log('获取成功', key + ':' + result);
		}
	});
};

export const removeStore = async key => {
	if (!key) return;
	await AsyncStorage.getItem(key,(error)=>{
		if (error) {
			console.log('删除失败' + error);
		} else {
			console.log('删除成功');
		}
	});
};


// static getAllKeys(callback?: ?(error: ?Error, keys: ?Array<string>) => void)
// 获取所有本应用可以访问到的数据，不论来自什么库或调用者。返回一个Promise对象。
//
// static flushGetRequests()
// 清除所有进行中的查询操作。
//
// static multiGet(keys: Array<string>, callback?: ?(errors: ?Array<Error>, result: ?Array<Array<string>>) => void)
// 获取keys所包含的所有字段的值，调用callback回调函数时返回一个key-value数组形式的数组。返回一个Promise对象。
//
// multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']])

// static multiSet(keyValuePairs: Array<Array<string>>, callback?: ?(errors: ?Array<Error>) => void)
// multiSet和multiMerge都接受一个与multiGet输出值一致的key-value数组的数组。返回一个Promise对象。
//
// multiSet([['k1', 'val1'], ['k2', 'val2']], cb);

// static multiRemove(keys: Array<string>, callback?: ?(errors: ?Array<Error>) => void)
// 删除所有键在keys数组中的数据。返回一个Promise对象。